<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        function flower () {
            // 求100-1000的三位数
            for(var i = 100; i < 1000; i++) {
                // 求出每个位数
                var bai = parseInt(i/100);
                var shi = (parseInt(i/10))%10;
                var ge = parseInt(i%10);
                // console.log(bai);
                // console.log(shi);
                // console.log(ge);
                // 设定初始值
                
                // 求阶乘的函数
                function fac (a) {  
                    // 初始值必须设置在内部，不然会被循环使用导致错误
                    var pro = 1;               
                    for (var j = 1; j <= a ; j++) {
                        pro *= j;
                    }
                    return pro;
                }
                // 三个位上数的和
                var sum = fac(bai) + fac(shi) + fac(ge);
                // 如果这个数和三个位数的和相等，则输出这个数
                if (sum == i) {
                    console.log(i);
                }

            
            }
        }
        flower();


        // var sum = 0;
        // function fac (a) {
        //     if (a == 1) {
        //         return 1;
        //     }else {
        //         return a * fac(a - 1);
        //     }
        // }
        // for(var i = 1 ; i <= n; i++) {
        //     sum += fac(i);
        //     console.log(fac(i));
        // }

    </script>
</head>
<body>
    4. 求一个三位数，叫做“喇叭花数”，该三位数等与其每位数字的阶乘之和。
</body>
</html>